package day04;

/*
@Author: 王少杰
@Date: 2025/1/3
@Time: 14:16
@FileName: Demo05.java
@描述:
static:静态的
       修饰类，类内部嵌套类，内部类使用static修饰
       修饰属性，静态属性，属于类，不属于实例。类名.属性名 ，所有实例共有
       修饰方法，静态方法，属于类，不属于实例。类名.方法名
       修饰代码块:这部分代码在类加载时执行一次

final:最终
      修饰类，类不能被继承
      修饰方法，不能被子类重写
      修饰属性/局部变量，只能被赋值一次
      public static final float PI = 3.14; 常量
*/
public class Demo05 {
    String name;
    String type;
    static String info;
    public static int add(int a, int b) {
        return a + b;
    }
    public int chengfa(int a, int b) {
        return a * b;
    }
    static {
        info = "Hello World";
        System.out.println("静态代码块");
    }

    static class InnerClass{
        public void func(){
            System.out.println("内部类的func方法");
        }
    }

    public static void main(String[] args) {
        Demo05 demo = new Demo05();
        System.out.println(Demo05.add(1, 2));//类方法，加static的
        System.out.println(demo.chengfa(1, 2)); //成员方法，未加static的
        System.out.println(add(10, 20));//同一个类，类名可以省略

        Demo05.InnerClass inner = new Demo05.InnerClass();//内部类实例化
        inner.func();
    }
}

final class A{

}
//class B extends A{} //报错

class C{
    public static final float PI = 3.14f; //常量
    public final void func1(){
        final int i;
        i = 0;
        //i = 100; //i只能赋值一次
        System.out.println("func1");
    }
}
class D extends C{
    //public void func1(){} //子类不能重写父类的final方法
}